class Product < ApplicationRecord
  validates :title, :description, :image_url, presence: true
  validates :price, numericality: {greater_than_or_equal_to: 0.01}
  validates :title, uniqueness: true
  validates :image_url,allow_blank: true, format: {
      with: %r{\.(git|jpg|png)\Z}i,
      message: 'must be a url for gif jpg png or png image'
  }

has_many :line_items
before_destroy :ensure_not_referenced_by_any_line_item

private

def ensure_not_feferenced_by_any_line_item
  unless line_items.empty?
    errors.add(:base, 'Line Items present')
    throw :abortend
  end
  end
end